Method and apparatus for precision interest matching locally stored content

ABSTRACT

Methods and systems for delivering selected content to users are provided. More particularly, profile information associated with an individual user is applied to select content for presentation to that user. While the user is viewing streamed content, content selected through application of the user profile can also be presented to the user. The selected content can be inserted into space reserved within a data stream for such selected content, or can be presented in place of other content delivered as part of the requested content.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/543,215, filed Oct. 4, 2011, and U.S. Provisional Patent Application Ser. No. 61/567,501, filed Dec. 6, 2011, the entire disclosures of which are hereby incorporated herein by reference.

FIELD

Methods and apparatuses for precision interest matching are provided. More particularly, methods and systems for providing selected content to a client are provided.

BACKGROUND

Computer networks such as the Internet provide a common means for obtaining content or other information. For example, searches can be performed over the worldwide web in response to queries provided by or on behalf of a user. The results of the search can be returned to the user in the form of an ordered list. The user can then select and review items included in the list of results and/or can make further queries in order to generate additional sets of search results.

In order to generate revenue in connection with the services offered over public networks such as the Internet, websites often sell advertising space. The advertisements that are presented by a web page can be selected based on information known or inferred about the user. For example, advertisements can be selected for presentation to a user based on search queries that have been entered by the user in the past.

In an effort to provide advertisements that are more precisely targeted to the user, search engines or other websites can aggregate information about the user. Such information can include a history of searches, web pages visited, and other information obtained from the user or derived from the user's actions. However, this collection of information raises privacy concerns. In addition, the current interests of the user may not be accurately inferred from collected information, for example where the user is pursuing new or different interests. As another example, advertising about a vacation destination after the person has returned from vacation may be presented as a result of search information aggregated from prior to the user's vacation.

In connection with the delivery of relevant content, whether advertising or otherwise, to a user, it is valuable to have detailed information about the user and about the specific information or content that the user is then interested in receiving. For example, demographic information regarding the user can help advertisers or providers of content generally to provide content desired by or of interest to the user. However, many users are reluctant to provide detailed demographic information, or other information that can be used to identify the user. As a result, a user faces a choice of disclosing information about themselves or their current interests, or receiving useless content. In addition, content providers, which can include advertisers, are unable to accurately determine the current interests of the user. Content providers, both advertisers and publishers, believe they have the right to discern, collect, merge with data from other sources, aggregate and sell any data they can regarding their users and use this data to track user activity across multiple web sites and email communications, reinforcing content consumers concerns regarding privacy and security.

It is also desirable to provide targeted information and/or advertising in connection with broadcast media or content. However, the specificity with which broadcast content can be delivered is limited by the distribution systems. In particular, the granularity with which advertising or other specialized content associated with a broadcast program can be selected is limited to regions of the country for satellite distribution systems, where the regions correspond to the coverage area of the satellite. In connection with cable television distribution systems, the area generally corresponds to neighborhoods or other large areas serviced by a head end facility. Moreover, although on-demand programming systems have been developed, such systems have not been capable of automatically selecting content for individual users. For example, where such systems are used to deliver on demand content to a user (e.g., a movie) it is a whole piece of content; it is not inserted into otherwise standard content and the inserted content is not based on user controlled parameters.

SUMMARY

Embodiments of the present invention are directed to providing systems and methods that are capable of delivering precisely selected content, based on the content provider and content consumer (publisher and user) needs, to a user while requiring that the user disclose no or limited information about themselves or their current interests to the content provider (e.g. advertiser or publisher). More particularly, embodiments of the disclosed invention include a client application that provides an interface with the user or an interface to another application through an application programming interface (API). Through this user interface or API, the user can provide personal information, and information regarding content that is relevant to the user or that the user is otherwise interested in receiving. The personal information and information about the content that the user is interested in receiving can be stored as part of one or more sets of profile information. Selected portions of the profile information can be used to generate queries that are provided to a search server. The search server can run one or more searches in response to receiving the queries. Metadata concerning the content included in search results can be returned to the client by the search server. The client application can then apply further profile information, to select items of content represented by the metadata to download to the client device.

The delivery of only selected information to a search server allows searches for desired or relevant content to be performed by the search server, while providing confidentiality or privacy. In particular, information that is considered particularly sensitive is not delivered to the search server. Moreover, at least initially, the search query information is not delivered to an advertiser or content provider at this point at all. In particular, the search server can protect the information the client device provides to the search server. The client can authorize the search server to release selected information in a non-anonymous fashion at the client's choice, for example as a condition of using the content or specific anonymous information after the fact as marketing demographics. Additionally, the search server does not retain, aggregate or otherwise keep this query data. The user can choose, via the user interface or API, to provide a controlled set of information about themselves anonymously and possibly get paid or otherwise compensated for that information. In accordance with embodiments of the present invention, information that is sensitive can be used to refine or filter the search results on the client device, and to determine the content that is actually presented to the user. In addition, because embodiments provide metadata about content, rather than the content itself, the delivery of the metadata to the client device can be performed with fewer resources than if the content itself were delivered as part of the initial search results.

In accordance with embodiments of the disclosed invention, the refinement of the search results can be performed by the client application automatically, through application of additional profile information. Moreover, after selecting particular items of content through the application of the additional profile information, the client application can download that content and store copies of the content locally. The user can then view that content at any time after the content has been downloaded. Alternatively, content can be streamed to the client device and viewed by the user at or about the time that it is received at the client device. In accordance with still other embodiments, content can be downloaded to the client device based on the initial search performed by the search server, and that content can then be filtered based on various criteria by the client application.

In addition, a client application and/or application programming interface (API) is provided to receive and manage profile information. The client application can be provided, for example, as part of or as an application running on a client device. As an example, the client device can include a set top box. Moreover, the set top box can comprise a cable converter and/or digital video recorder (DVR). The client device is interconnected to one or more data sources and/or broadcast content sources. Moreover, connections to different sources can be over different networks. For example, a connection to a data source can be over an internet protocol network, while a connection to a broadcast content source can be over a cable television network.

The profile information can be used to identify selected content. The selected content can be downloaded to the client device, and placed in storage included as part of or local to the client device. The selected content can then be maintained for at least some period of time in the data storage. Selected content that is stored and available to the client device can be deleted after it has been viewed by a user, or after a predetermined period of time has elapsed. Stored selected content can also be deleted after the occurrence of an event indicating that the selected content is no longer relevant. For example, the modification or deletion of profile information indicating an interest of an associated user in the selected content can result in the content being deleted from data storage. As further examples, an input from a user or an administrator to delete or refresh selected content can cause stored selected content to be removed.

In accordance with embodiments of the present invention, a user can be provided with specifically selected content while viewing requested content. For example, advertisements or other enhanced content that have been stored locally can be provided as part of or inserted into a requested video stream. Moreover, the requested video stream can comprise an in-progress broadcast program that is delivered to any number of viewers simultaneously, or an on-demand program delivered to the individual user in response to a request by that user. In accordance with still other embodiments, a user can be provided with programming selected in view of the user's profile information. In addition, a client device can provide different users or audiences with different content. In particular, profile information can be applied according to the current user's profile information. In this way, content that is selected for and/or appropriate for current users (viewers) can be provided. Operation of the client application and device can include receiving sign in information identifying a current user or user group.

In accordance with further embodiments of the disclosed invention, the communications, including the exchange of profile information, metadata, and content, can be performed securely, for example through the application of encryption techniques. In accordance with still further embodiments, the client application can provide notification to an authority, for example to the search server, when metadata and/or items of content are accessed by the user of the client device.

Additional features and advantages of embodiments of the present invention will become more readily apparent from the following description, particularly when taken together with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts elements of a system for identifying and delivering content in accordance with embodiments of the present invention;

FIG. 2 is a block diagram depicting components of a system for identifying and delivering content in accordance with embodiments of the present invention;

FIG. 3 is a flowchart depicting aspects of a process for identifying content in accordance with embodiments of the present invention;

FIG. 4 is a flowchart depicting aspects of a process for presenting content to a user in accordance with embodiments of the present invention;

FIG. 5 is a flowchart depicting further aspects of a process for presenting selected content to a user in accordance with embodiments of the present invention;

FIG. 6 depicts aspects of a process for matching advertisements or other content and presenting that selected content to a user in accordance with embodiments of the present invention; and

FIG. 7 is a flowchart depicting additional aspects of a process for presenting selected content to a user in accordance with embodiments of the present invention.

DETAILED DESCRIPTION

FIG. 1 depicts aspects of a system 100 for providing selected or matched content to a user 104 in accordance with embodiments of the present invention. In general, the system 100 includes one or more client devices 108 interconnected to a search server 112 by one or more communication networks 116. The system 100 can additionally include one or more data sources 120 in communication with the client device 108 and/or the search server 112 through one or more of the communication networks 116.

The client device 108 may comprise a general purpose computer, such as but not limited to a laptop or desktop personal computer, a tablet computer, a smart phone, or other device capable of communications over a communication network 116 and capable of presenting content to an associated user 104. The client device 108 may also comprise a processing unit that is interconnected to an affiliated input/output device. For instance, a client device 108 can include a set-top box operated in connection with a tablet computer. The client device 108 includes and/or executes a client application 124 in connection with the identification of content and the presentation of content to the user 104. Accordingly, the client application 124 may comprise application programming stored on or accessible to the client device 108, that is executed by or on behalf of the client device 108 in connection with the identification and presentation of content. The client application 124 may operate in association with profile information 128 that is stored or maintained as one or more user profiles. As described in greater detail elsewhere herein, profile information 128 can include information that is used to locate and identify content for presentation to the user 104. The information can include server side profile information 130 that is provided to the search server 112, either directly or in the form of a query formulated locally, and a second set of information that is reserved or retained locally as client side profile information 132. More particularly, the server side profile information 130 can be used to obtain initial or rough search results, and does not need to include information that individually identifies the user 104. The client side profile information 132 can be used to select content included in the initial search results to download to the client device 108 and/or to present to the user 104. The client device can also include a content cache 134, comprising items of content 140 and/or items of enhanced content 142 identified by the search server 112 that have been downloaded to the client device 108. Information or content 140, 142 in the content cache 134 can be held on the client device 108 until it is viewed by the user 104, discarded as a result of filtering, performed on the client device 108, or until the content has become stale.

The search server 112 can include a general purpose computer or server computer. Moreover, the search server 112 may comprise one or more devices that perform functions in support of the identification and provision of content 140 and/or enhanced content 142 to a client device 108 over the communication network 116. The search server 112 can include or implement a server application 136. The server application 136 can receive queries, and/or can formulate queries based on server side profile information 130 that is provided to the search server 112 by a client device 108. Alternatively or in addition, the server application can run queries on behalf of one or more client devices 108 based on generic, or non-client device 108 sourced profile information or search criteria. The server application 136 can identify content 140 and/or enhanced content 142 by applying the search or query using various techniques. For example, the server application 136 can operate by passing a query to a publicly available search engine, such as Google™, Bing™, or Yahoo™ search, or by itself implementing a search engine function. The server application 136 can identify or collect links to content 140, 142 available through or stored on the search server 112, or on some other data source 120. For example, the server application 136 can operate to locate content on the worldwide web (WWW), in a private intranet, or in public or private databases. As described in greater detail elsewhere herein, the server application 136 can further operate to provide lists of identified content 140, 142 and metadata concerning that identified content to a client device 108. The search server 112 can also facilitate the delivery of particular items of content 140, 142 selected from lists of content 140, 142 by a client device 108 to that client device or other client devices 108. In accordance with still other embodiments, the server application 136 can perform or support administrative functions. For example, information regarding content 140, 142 downloaded to the client device 108 and/or presented by a client device 108 to an associated user 104 can be collected by the server application 136. Such information can be provided to an administration module 144. The administration module 144 can perform functions related to billing a user 104 for accessing particular items of content 140, 142, performing digital rights management functions with respect to items of content 140, 142, billing advertisers in connection with presenting particular items of content 140, 142 to a user 104, and the like.

The communication network 116 can include one or more networks capable of supporting communications between devices or nodes of the system 100, including but not limited to a client device 108, a search server 112, and a data source 120. Examples of communication networks 116 include the Internet or any wide area network (WAN), local area network (LAN), or networks in various combinations. Other examples of communication networks 116 in accordance with embodiments of the present invention include broadcast networks. As used herein, broadcast networks can include over the air broadcast systems, cable television systems, satellite television systems and digital subscriber line (DSL) networks. In addition, different communication networks 116 can share a common physical infrastructure, for at least some portion of the physical network. For instance, a client device 108 can be interconnected to a communication network 116 comprising the Internet and to a cable television system content provider, by a cable line (e.g., a coaxial transmission line) between the client device 108 and a multiple service provider or digital services provider distribution node.

A data source 120 can, for example, comprise a server computer interconnected to the search server 112 and/or the client device 108 through the communication network 116. For example, a data source 120 can comprise a website or other public or proprietary source of content 140. As a further example, a data source 120 can comprise a public or proprietary database of content 140. A data source 120 can also include a source of enhanced content 142.

In accordance with further embodiments, a media or multiple service provider (MSP) or other broadcast data source 148 can be provided. A broadcast data source 148 can be interconnected to a client device 108 through a communication network 116. As an example, a broadcast data source 148 can comprise a cable or satellite television service provider interconnected to a client device 108 through a communication network 116 comprising a cable or satellite television distribution network system respectively. The broadcast data source 148 can provide broadcast content 152 to a client device 108. As used herein, broadcast content 152 can include content that is available to multiple client devices 108 simultaneously. A particular example of broadcast content 152 therefore includes broadcast programming delivered in connection with a television channel. A broadcast content provider 148 can additionally provide audio and video on-demand (AVOD) content 156. AVOD content 156 can include content that is available to multiple individual users 104, but that is requested by an individual user 104 at the time the user 104 desires to access the AVOD content 156. Moreover, a broadcast content source 148 generally provides content 152, 156 in the form of streaming video content. Such streaming video content 152, 156 can be “live” content, or can be streamed from a stored source of content, for example using Internet Protocol television (IPTV) techniques. Moreover, the content 152, 156 from the broadcast content source 148 can include multiple forms of data or data types. For instance, content 152, 156 provided by a broadcast content source 148 can include full motion video, multiple tracks of audio, and selectable supplemental information, such as subtitles or program guides.

In accordance with still other embodiments of the present invention, a search server 112 and/or different data sources 120 and/or 148 can be provided separately, or can be provided in various combinations. For example, a broadcast content source 148 can operate as a search server 112 and can provide content 140 and enhanced content 142, in addition to broadcast 152 and on-demand 156 content. Moreover, a search server and/or other source of content 120 or 148 can be interconnected to a client device 108 through one or more communication networks 116. For example, a broadcast content source 148 can be interconnected to a client device 108 through a communication network 116 comprising an Internet protocol network, and by a communication network 116 comprising a broadcast television network. For example, a broadcast content source 148 can incorporate a search server 112 and associated components.

FIG. 2 illustrates additional aspects of a system 100 in accordance with embodiments of the present invention, and in particular illustrates additional features and components of a client device 108 and an integrated search server 112 and/or broadcast content source 148, referred to hereinafter as a multiple service provider server 202. The client device 108 can comprise a set top box, general purpose computer, tablet computer, smart phone, or other device or federated group of devices capable of supporting communications over a communication network 116, and of running a suitable version of the client application 124. The multiple service provider server 202 may comprise one or more server computers capable of communication over a communication network 116, and of running a suitable server application 136. In addition, the multiple service provider server 202 can include one or more communication services servers capable of providing and/or controlling the distribution of broadcast content 152 and/or on-demand content 156. In general, the client device 108 and multiple service provider server 202 each include a processor 204, memory 208, data storage 212, and a communication network interface 216. Moreover, multiple communication or network interfaces 216 can be provided. For example, in the case of a multiple service provider server 202, a communication network interface 216 can comprise an over the air broadcast transmitter, and/or an Internet protocol network interface. A client device 108 can, for example, include a communication interface 216 comprising a broadcast converter box 218, such as a cable television or satellite television converter box. A broadcast converter box 218 can alternatively or additionally include an over the air tuner. Moreover, a cable converter box 218 can include interfaces to Internet protocol networks, the public switched telephony network, or other communication networks 116. In addition, the client device 108 and/or the search server 112 can include one or more user input devices 220, such as a keyboard and a pointing device, and one or more output devices 224, such as a display and a speaker. A user input 220 and user output 224 device can comprise a combined device, such as a touch screen display. Components can also be separately provided. For example, a client device 108 comprising a set top box can include an output device 224 in the form of a television that is interconnected to the set top box. As another example, some or all of the data storage 212 available to a client device 108 for the storage of selected content 140 and/or 142 can be provided by a separate component, such as a general purpose computer or a network attached storage system interconnected to the client device 108 by a local area network or other local connection. In accordance with still other embodiments, a client device 108 comprising a mobile device can include a geolocation module 226, such as a global positioning sensor and associated application programming.

The processor 204 may include any processor capable of performing instructions encoded in software or firmware. In accordance with other embodiments of the present invention, the processor 204 may comprise a controller or application specific integrated circuit (ASIC) having or capable of performing instructions encoded in logic circuits. The memory 208 may be used to store programs or data, including data comprising content 140. As examples, the memory 208 may comprise RAM, SDRAM, or other solid state memory. Alternatively or in addition, data storage 212 may be provided. The data storage 212 may generally include storage for programs and data. For instance, with respect to a client device 108, data storage 212 may provide storage for a client application 124, an object or data store 228, a content cache 232, content 140 and/or enhanced content 142 (for example within the data store 228 and/or content cache 232), and key rings 236. As shown, the client application 124 can include or be associated with profile information 130 and a user interface module or function 238. Data storage 212 associated with a client device 108 can also provide storage for one or more user applications 240, communication applications 244, and/or operating system software 248. An example of a user application 240 can include a digital video recorder (DVR) application that allows specific programs available as broadcast content 152 to be stored in local data storage 212. The data storage 212 associated with the multiple service provider server 202 can include the server application 136, content 140, for example as part of one or more content databases 252, a data warehouse 256 and accounting data 260, for example maintained as part of the administration module 144, and operating system software 248.

FIG. 3 is a flowchart depicting aspects of a process presenting content to a user in accordance with embodiments of the present invention. Initially, at step 304, a determination is made as to whether a query has been initiated. A query can be initiated explicitly, for example through the receipt from a user 104 at a client device 108 of a search or query request. A query can also be initiated after a predetermined period of time has elapsed since a previous query for the same or a similar set of search criteria has been run. Accordingly, a query can comprise a watch that gathers particular information on behalf of a user or set of users automatically on a periodic basis or in response to a stimulus. In accordance with still other embodiments of the disclosed invention, a query can be initiated in response to a change in information contained in a profile 128, a change in the location of the user 104 or client device 108, or other change related to the system 100. The automatic initiation of a query, without an explicit request by a user 104, can be performed by the client application 124.

In response to the initiation of a query, server side profile information 130 can be provided by the client application 124 on or associated with the client device 108 to the search server 112 via the one or more communication networks 116 (step 308). In response to receiving the server side profile information 130, the server application 136 initiates a search (step 312). In initiating the search, the server application 136 can provide a received query to a search engine that is implemented by the server application 136 itself, or that is provided by an affiliated or otherwise available search engine. Alternatively, the server application 136 can formulate a query that uses or that is based on server side profile information 130, and can provide that query to a search engine. In accordance with still other embodiments, the query can be formulated by and/or received from an administrator or an administration function operating on or in association with the search server 112.

At step 316, search result metadata is returned to the client device 108. The search results metadata can be collected by the server application 136 from the search results obtained by the search engine. In accordance with embodiments of the disclosed invention, the search results metadata can comprise various data concerning content 140 identified by the server application 136, such as by title, author, synopsis or other brief summary, excerpt, subject matter, classification, unique ID, date of creation, and date of an event or events to which the content 140 is related. As can further be appreciated by one of skill in the art, the metadata will typically comprise a fraction of the amount of data of the content itself. Accordingly, the metadata can be provided to a client device 108 over a communication network 116 using less bandwidth and other resources than if the full set of content 140 included in the search results were returned to the client device 108.

The client side profile information 132 is then applied to the search results metadata by the client application 124 (step 320). Alternatively or in addition, input provided by a user 104 can be applied to the search results metadata. Importantly, this additional information or search criteria is applied to the search results metadata at the client device 108. Accordingly, transmission of such client side profile information 132 across a communication network 116, and/or the release of such client side profile information 132 to the search server 112 is not required in order to refine the search results. In addition, the client device 108 is not required to be in communication with the search server 112 at the time the client side information 132 is applied. At step 324, a determination is made as to whether any items of content 140 have been selected from the search results metadata. If content has been selected, that content 140 can be downloaded (step 328). At step 332, a determination is made as to whether the process is to be continued. If the process is to be continued, it returns to step 304 to determine whether a query has been initiated. Alternatively, the process may end.

With reference now to FIG. 4, aspects of a process for presenting content to a user 104 in accordance with further embodiments of the present invention are depicted. More particularly, the selection and presentation of enhanced content or information 142, where enhanced content generally includes advertisements or items of information that may or may not be directly related to user 104 activities with respect to the client device 108, are illustrated. Although the description uses as examples enhanced content 142 comprising advertisements, embodiments of the system 100 can include locating and presenting enhanced content 142 other than advertisements that is determined to be of interest to the user 104. Initially, at step 400, the user 104 accesses the client application 124. A determination is then made as to whether an enhanced content function is on or has been enabled (step 404). If an enhanced content function has not been enabled, a next user 104 request is processed normally (step 408). If an enhanced content function has been enabled, a determination is next made as to whether an enhanced content fuel gauge indicates that an enhanced content cache 134 is full (step 412). If the enhanced content cache 134 is found to be full, the system processes the next user request normally (step 408).

If the content cache 134 is not full, a request is constructed (step 416). Construction of the request can include sending server side profile information 130 to the search server 112. As described in greater detail elsewhere herein, the server side profile information 130 can include information stored as part of profile information 128 on the client device 108, information concerning content 140 that is currently being accessed by the user 104, a current location of the user 104 or client device 108, information regarding the output capabilities of the client device 108, and/or information regarding user interface display metrics, including space within a user interface 238 display that is available to display or otherwise output an advertisement or other content. At step 420, using the constructed request, one or more items of enhanced content 142, such as but not limited to an advertisement or other content, is obtained from the search server 112 or from a data source 120 identified by the search server 112. The retrieved enhanced content 142 is then downloaded and placed in an enhanced content 142 store (e.g., a local ad store) included in the local content cache 134 on the client device 108 (step 424).

At step 428, after processing a next user request or placing retrieved enhanced content 142 in the local content cache 134, a determination is made as to whether an advertisement or other enhanced content 142 needs to be displayed to the user 104. The determination as to whether an advertisement or other enhanced content 142 needs to be displayed can be made based on various parameters, including terms of use related to the content 140 selected for display or other content 140 being accessed by the user 104, or other user 104 and/or administration selected parameters. If an advertisement or other content is to be displayed, that advertisement or enhanced content 142 is selected from the local enhanced content 142 store or content cache 134 (step 432). The selected advertisement or other enhanced content 142 is then displayed as part of a page of other information or content 140 being viewed by the user 104 (step 436). If it was determined that an advertisement or other enhanced content 142 does not need to be displayed, the user 104 is simply presented with a display of the page or other content 140 accessed in response to a user request. After displaying the page of information or content 140 at step 436, or processing a next user request at step 408, the process for selecting and displaying enhanced content 142 may end.

FIG. 5 is a flowchart illustrating additional aspects of a process for determining whether to display enhanced content 142, such as but not limited to an advertisement, to a user 104. Initially, at step 504, taxonomy information is obtained from content 140 that is being accessed by the user 104. The taxonomy information generally includes information identifying the content 140 being viewed, and therefore provides information that can be used to identify the current interest of the user 104. At step 508, local or client side profile information 132 is accessed. In accordance with at least some embodiments, the client side profile information 132 can include user 104 preferences regarding enhanced content 142, such as advertisements or other information, that is presented to the user 104 while the user 104 is accessing other content 140. At step 512, enhanced content 142 “hole” (e.g., time slot) size metrics are obtained from the user interface function 238 of the client application 124. These metrics may specify the dimensions or other characteristics of the current display and/or the user output 124 available to present a selected ad or other enhanced content 142. The taxonomy information, client side profile information 132 and the retrieved hole size metrics are then compared to enhanced content 142 in the local enhanced content 142 repository in the content cache 232 to identify an ad or other enhanced content 142 matching the current interest, profile and hole size criteria (step 516). At step 520, a determination is made as to whether a match has been found. If a match is not found, a request can be generated by the client application 124 for more enhanced content 142 metadata (step 524). This additional metadata can then be considered in view of client side profile information 132 and/or other criteria to identify enhanced content 142 that can be downloaded and stored in the content cache 232, for example in place of previously downloaded enhanced content 142.

If a match is found, a determination is made as to whether the matching enhanced content 142 has been downloaded to the content cache 232 (step 528). If the matching enhanced content 142 is not locally available, that enhanced content 142 can be downloaded, or other matching enhanced content 142 can be identified (step 532). The matching enhanced content 142 can then be obtained from the content cache 232 and is provided to the user interface 238 function of the client application 124 for rendering and display or other presentation to the user 104 through the user output 224 (step 536). After displaying the selected enhanced content 142, the process may end.

FIG. 6 depicts aspects of a process for matching advertisements or other enhanced content 142 and presenting that selected enhanced content 142 to a user 104. More particularly, FIG. 6 depicts inputs to an advertisement matching engine function 604, for example implemented as part of the client application 124. These inputs include a selected article or other content 608 that is to be displayed to the user 104, profile information 128, and advertisements or other enhanced content 142 maintained in the local advertisement database or content cache 232. The article to be displayed 608 can include an article or other content 140 that the user 104 has selected, or that has been selected on behalf of the user 104, for example through operation and/or application of the user profile information 128. The profile data 128 can include information collected from the user 104, for example through data input screens 612 presented to the user 104 through a process initiation function implemented by the client application 124. The local advertisement database or content cache 232 can include advertisements or other enhanced content 142 that have been collected through operation of the client application 124 and the server application 136, and the application of profile information 128 as described herein. The result of the application of these various inputs by the advertisement matching engine 604 is a displayed video segment or page 616 that includes the content selected for display 620 and the advertisement selected for display 624. Moreover, the advertisement occupies a space in time within the video stream that has been reserved or otherwise made available, for example through the initial formatting of the selected content 620 or through the operation of the client application 124.

FIG. 7 illustrates aspects of a method for delivering requested content to a user in accordance with embodiments of the present invention. Initially, at step 704, a user provides profile information 128. As with other exemplary embodiments, the user profile information 128 can include information that is used to locate and identify content 140, 142 for presentation to the applicable user 104. The provided information can include server side profile information 130 and client side profile information 132. In addition, different profiles 128 can be established for different sets of users. At step 708, a determination can be made as to whether there are other users entering profile information 128. If other users are entering profile information 128, the process can return to step 704.

After all of the registering users 104 have provided profile information 128, a current user signs in (step 710), and that user's profile information 128 is applied to identify content for possible presentation to the signed in user 104 (step 712). Identified content 140, 142 is then downloaded to the client device 108, which in an exemplary embodiment comprises a set top box (step 716). At step 720, a determination is made as to whether an active user is present. In particular, a determination can be made as to whether a user 104 is currently watching requested content 152, 156, for example in the form of a video program (e.g., a television program) or other broadcast content 152. Moreover, the active user 104 or set of users is identified. In accordance with embodiments of the present invention, an active user 104 or set of users can be identified through a simple registration or identification process performed when the set top box or other client device 108 is activated to view broadcast content 152. A set of users can be identified by registering multiple users 104, while or prior to watching broadcast content 152. In accordance with still other embodiments, sets of users or user groups can be associated with profiles 148 that are selectively activated. For example, and without limitation, a family group can be defined and selected for use where broadcast programming is being presented to members of the family, a children's group can be defined and selected when children only are viewing content, and an adult family members group can be defined and selected when only adult family members are viewing content.

If an active user is present, at step 724, a determination is made as to whether selected content 140 or 142 is available for the active user 104 or user group. If selected content 140 or 142 is available, that content 140, 142 is presented in an available space provided in the requested content (step 728). For example, where the requested content 152, 156 is broadcast content 152 comprising a video program, the space can be provided in the form of one or more time slots at selected locations within the program. The selected content 140 or enhanced content 142, for example an advertisement, can be placed into a selected time slot. Moreover, the selected time slot can comprise a replaceable segment of broadcast 152 or AVOD 156 content, or a blank or otherwise reserved interval included in the request content 152, 156. The selected content 140 or 142 is then presented to the user 104 when the programming reaches the selected time slot. In accordance with embodiments of the present invention, information regarding available slots or whitespace within a program or other content 152 or 156 can be provided to the client application 124 as part of the broadcast 152 or 156 information. For example, such information can be provided as supplemental data or metadata. Moreover, the selected content 140 or 142 can be in the same format as the requested content 152 or 156. For example, where the requested content 152 or 156 is in the form of video content, the selected content 140 or 142 can also be streamed video. If at step 724 it is determined that selected content 140, 142 is not available, the process can return to step 716 to try to download selected content 140, 142.

At step 732, a determination can be made as to whether operation of the client device 108 and/or client application 124 to provide content is to continue. If operation is to continue, the process can return to step 712, at which point selected content for one or more users is identified. Accordingly, the process of identifying content 140 and 142 appropriate to users 104 associated with defined user profiles 128 can continue as a background operation, while the client device 108 is in operation. In accordance with still other embodiments, such collection of selected content 140, 142 can continue even when the client device 108 is powered off, at least with respect to real time user operations. If operation is to be discontinued, the process may end.

In accordance with embodiments of the present disclosure, a user can select an applicable user profile from a plurality of available profiles. This allows a user to, for example, access and/or be presented with different selected content 140, 142, based on a change in mood, a change in the set of users currently viewing content, or other change in circumstance. Alternatively or in addition, a user 104 can provide modified profile information 128 which can be applied to change the selected content 140, 142 that is presented to the user 104. Accordingly, a user 104 can provide feedback to the system to help the system 100 provide relevant and appropriate content 140 and 142.

In accordance with still other embodiments, the system 100 can operate to select and provide content to a user 104 entirely in response to information included in the user profile information 128. For example, instead of a user 104 explicitly requesting broadcast content 152 or on-demand content 156, such broadcast content 152 or on-demand content 156 can be identified by the search server 112 applying the user profile information 124 for the active user 104. Moreover, selected content 140 and/or enhanced content 142 can be presented together with the automatically selected broadcast content 152 or on-demand content 156. Accordingly, embodiments of the present invention allow for customized programming to be presented to a user 104. Advantages of such a system 100 include the ability to satisfy users 104 subscribing to multiple service provider offerings by delivering content 140, 142, 152 and/or 156 that is selected in consideration of the user's profile information 128. More particularly, the content 140, 142, 152 and/or 156 delivered to a user 104 is selected in view of the user's stated and/or inferred preferences, and therefore is likely to be of interest and/or relevant to the user 104.

In accordance with still other embodiments, in connection with selected content 140 or enhanced content 142 that is added to and/or inserted in other content, such as broadcast content 152, can be stored as part of a content cache 134 during background operations performed by the client application 124. For example, even when a client device 108 is not delivering broadcast content 152 or on-demand content 156 to a user 104, it can nonetheless be operating to store selected content 140 or enhanced content 142 for later delivery to a user 104. Moreover, such background operations can be performed with respect to multiple users 104 registered with a particular client device 108. Selected content 140, 142 stored in the content cache 134 can then be selected and presented to a user 104 as described in connection with various of the methods discussed herein.

The selected content 140, 142 stored in the content cache 134 can be replaced, entirely or in part, periodically or as required. For example, the selected content 140, 142 can be removed when that content 140, 142 is determined to have become stale. The selected content 140, 142 can also be replaced by new content on a first in first out basis. Selected content 140, 142 can also be removed from the content cache 134 in response to instructions received from a user 104 or an administrator.

The content 140, 142 maintained in the content cache 134 can be selected with respect to multiple users 104 in response to the associated user profile information 128. Alternatively or in addition, specific items of selected content 140, 142 can be maintained for possible presentation to an individual user 104.

In addition to providing selected content 140, 142 that is determined to be of interest to an active user 104, embodiments of the invention can be used to provide information that is determined to be appropriate for a user or a set of users 104. For example, when young children are viewing requested content 152 or 156, content 140 or enhanced content 142 selected by operation of the system 100 will conform to parameters stated in the applicable user profile 128 in order to limit selected content 140 or enhanced content 142 to that which is determined to be age appropriate. Accordingly, embodiments of the present invention can be used to implement and/or enforce parental or administrative rules.

Although various examples and embodiments have been described in which advertisements are selected and presented to a user, embodiments of the present invention are not limited to the selection and presentation of advertising content. Instead, embodiments of the disclosed invention can be used to select content 140 and/or enhanced content 142 wherever efficiency, security and/or privacy is a concern. More particularly, by performing an initial search using a subset of a user's profile information 128 comprising server side profile information 130, a user 104 can initiate or have initiated on their behalf the collection of an initial set of search results, without requiring that the user 104 transmit and/or otherwise disclose details of the search criteria that may compromise the security of confidential information and/or personal information. Instead, search criteria that may present security and/or privacy concerns is maintained on the client device 108, and is applied by the client application 124. In addition, the efficiency of the system 100 can remain high, because only metadata regarding content 140 and/or enhanced content 142 needs to be returned as part of an initial set of search results. In particular, the initial search results can be refined by applying client side profile information 132 to the returned metadata. Content 140 and/or enhanced content 142 identified through this process can then be downloaded where a match is found using the metadata. Embodiments of the disclosed invention can also provide relevant content 140 to a user 104 even where the user 104 didn't know to look for that content 140, based on a watch or query, and filtering performed by application of client side profile information 132.

In one exemplary scenario, embodiments of the invention can provide relevant content 140 and/or enhanced content 142 to a user 104 without compromising security or privacy concerns of the user 104. For instance, a query can be initiated on behalf of a user 104 by sending server side profile information 130 to the search server. The sending of the server side profile information 130 can be initiated when a geolocation module 226 on the client device 108 signals the client application 124 that the user 104 has entered a particular geographic region. Moreover, this can be done without sending that location information to the search server 112. The client device 108 can then be provided with metadata regarding a range of content 140, and a set or list of particular items of content 140 and/or enhanced content 142 can then be refined securely by applying client side profile information 132 at the client device 108. This client side profile information 132 can include the client device 108 location. Accordingly, a targeted search can be performed without requiring disclosure of sensitive client side profile information 132 to the search server 112 or any other device or node. For instance, the security clearance, location, mission or other information associated with the user 104 can be maintained solely on the client device 108.

In accordance with still further embodiments of the disclosed invention, a taxonomy can be applied to identify content 140 and/or enhanced content 142 that is likely relevant and therefore of interest to the user 104. In particular, a taxonomy can be used to identify characteristics of content 140 being viewed currently by a user 104, and to obtain additional content 140 and/or enhanced content 142 that is commensurate with the subject matter or other indicia of the content 140 being viewed. In this way, information in the form of content 140 and/or enhanced content 142 that is highly relevant to the current activity or interest of a user 104 can be located and delivered to that user 104.

Systems 100 and methods in accordance with embodiments of the disclosed invention allow for the delivery of profile information 132 and content 140 and/or enhanced content 142 using secure mechanisms. Accordingly, not only is security and privacy enhanced through the division of profile information 128 into server side profile information 130 and client side profile information 132, but information that is transmitted across a communication network 116, whether that information comprises profile information 128, metadata, content 140, and/or enhanced content 142, can be encrypted. Encrypted content can be accessed through the application of one or more keys, for example maintained in key rings 236, to access.

The foregoing discussion of the invention has been presented for purposes of illustration and description. Further, the description is not intended to limit the invention to the form disclosed herein. Consequently, variations and modifications commensurate with the above teachings, within the skill or knowledge of the relevant art, are within the scope of the present invention. The embodiments described hereinabove are further intended to explain the best mode presently known of practicing the invention and to enable others skilled in the art to utilize the invention in such or in other embodiments and with various modifications required by the particular application or use of the invention. It is intended that the appended claims be construed to include alternative embodiments to the extent permitted by the prior art. 

What is claimed is:
 1. A method for presenting content, comprising: receiving profile information related to a first user; receiving at least one of first selected content and first selected content metadata from a content provider; storing at least a first set of selected content included in the received first selected content or identified in the first selected content metadata; identifying a first item of content included in the stored set of selected content; presenting first requested content; and during or immediately following presenting the first requested content, presenting the identified first item of content.
 2. The method of claim 1, wherein identifying the item of content includes applying information in at least a first category of information included in the profile information related to the first user.
 3. The method of claim 2, wherein identifying a first item of content included in the stored selected content includes applying information in at least a second category of information included in the received profile information related to the first user.
 4. The method of claim 1, further comprising: receiving profile information related to a second user; receiving at least one of second selected content and second selected content metadata from the content provider; storing at least a second set of selected content included in the received second selected content or identified in the second selected content metadata; and identifying a second item of content included in the stored second selected content.
 5. The method of claim 4, further comprising: receiving input identifying the second user as a current user; receiving input to present second requested content, wherein identifying the second item of content included in the stored selected content includes applying at least some of the received profile information related to the second user; presenting the second requested content; and during or immediately following presenting the second requested content, presenting the identified second item of content.
 6. The method of claim 1, wherein first requested content includes a video stream.
 7. The method of claim 6, further comprising: identifying an insertion point with respect to the first requested content, wherein the identified first item of content is presented in coordination with the insertion point.
 8. The method of claim 7, wherein the identified first item of content is presented during the presentation of the first requested content, and wherein the identified first item of content replaces the first requested content.
 9. The method of claim 7, wherein the first set of selected content is stored in data storage provided as part of a set top box, and wherein the first item of content is presented by a television interconnected to the set top box.
 10. The method of claim 9, wherein the selected content is stored on the set top box while the set top box is not being operated to provide a video stream in real time to the first user.
 11. A device, comprising: a communication interface; a processor; data storage; profile information stored on data storage, the profile information including a first category of profile information and a second category of profile information; application programming stored on the data storage, wherein the application programming includes instructions operable to provide at least some profile information included in the first category of profile information belonging to at least a first user to a search server using a link established over the communication interface, wherein the application programming receives at least one of content and content metadata in response to providing the search server with the information included in the first category of profile information, wherein the application programming applies profile information included in the second category of profile information belonging to at least the first user to the at least one of content and content metadata to produce a first filtered list of content, wherein the application programming stores at least one item of content identified in the filtered list of content on the data storage; and a user output device, wherein the user output device is operable to present broadcast content to the at least a first user during a first period of time, and wherein the user output device is operable to present the stored at least one item of content during a second period of time.
 12. The device of claim 11, further comprising: a set top box, wherein the communication interface, processor, and data storage are included as part of the set top box.
 13. The device of claim 12, further comprising: a television, wherein the user output device is provided as part of the television.
 14. The device of claim 11, wherein the stored at least one item of content is downloaded while the user output device is in an off state.
 15. The device of claim 11, wherein the stored at least one item of content is downloaded from at least one of the search server using the first link and a content server using a second link.
 16. The device of claim 11, wherein the application programming is further operable to apply profile information included in the second category of profile information belonging to a second user to the at least one of content and content metadata to produce a second filtered list of content, and wherein the application programming stores at least one item of content identified in the second filtered list of content on the data storage.
 17. The device of claim 11, further comprising: a user input, wherein information identifying a current user is provided to the application programming using the user input.
 18. The device of claim 17, wherein in response to information identifying the first user as the current user the at least one item of content identified in the first filtered list of content is presented to the first user during the second period of time, and wherein in response to information identifying the second user as the current user the at least one item of content identified in the second filtered list of content is presented to the second user during the second period of time.
 19. A computer program product including computer executable instructions stored on a tangible medium, the instructions comprising: instructions to apply a first category of profile information related to a user to identify a first set of content relevant to at least a first user; instructions to store content included in the identified first set of content in a storage device; and instructions to present a first selected item of content included in the identified first set of content in coordination with a first requested item of content, wherein the content included in the identified first set of content is stored in the storage device prior to a presentation of the first selected item of content in coordination with the first requested item of content.
 20. The computer program product of claim 19, further comprising: instructions to apply a second category of profile information related to the user to select the first selected item of content. 